Logging settings

Important   Modifying the configuration file could lead to unexpected behavior in the application. Only when you are familiar with the process and risks involved with changing a configuration file, you should attempt to change the configuration.

JewelSuite uses the Serilog logging services for the output of .NET log statements in a structured way.

Log file location

Log files are stored by default in the following folder:

C:\Users\[user]\AppData\Local\Baker Hughes\Logs

When the application crashes or does not operate as expected, you can find information related to the issue in these log files. Provide the relevant log file to the JewelSuite support team to help diagnose the problem.

Configuring log levels

The default logging level captures basic application events. If you need more detailed output for diagnostics or metrics, you can adjust the logging configuration in the serilog.json file located in the application configuration folder. For information on the available logging levels and loggers, see https://serilog.net/.

The logging service can also be used for reporting of UsageStatistics.

Default logging configuration

By default, a separate log file is created for each application instance. The file name includes the product name, version, and a date/time stamp (for example, JewelSuite-SSM-2026-4-2026-07-14 16.55.44.txt). This behavior is controlled by the AppendDateAndTimeToPath setting in the serilog.json file in the configuration folder of the application:

{
  "Name": "File",
  "AppendDateAndTimeToPath": true,
  "Args": {
    "path": "%LOCALAPPDATA%/Baker Hughes/Logs/JewelSuite-SSM-2026-4.txt",
    "rollOnFileSizeLimit": true,
    "outputTemplate": "{Timestamp:yyyy-MM-dd HH:mm:ss.fff} [{ThreadID}] {Level:u3} - {Context} - {Message:jl}{NewLine}",
    "fileSizeLimitBytes": 1000000000
  }

The rollOnFileSizeLimit setting ensures a new log file is started when the current file reaches the size limit (1 GB by default).

Other components of the application can be configured outside of the UI as well, see Administrator configurations.

Logging to a central logging system

When you have a central logging system (for example, an ELK stack), you may need extra information for filtering log messages. The following structured log fields are available:

  • ThreadID
  • MachineName
  • UserName (on Windows this includes the domain name)
  • ProcessId
  • ProcessName
  • SessionId (a unique ID created each time the application starts)
  • SolutionId (the unique ID of the active solution)
  • StackTrace

Add these fields to your log output by adjusting the outputTemplate in the serilog.json file:

"outputTemplate": "{Timestamp:yyyy-MM-dd HH:mm:ss.fff} [{ThreadID}][{MachineName}][{UserName}] {Level:u3} - {Context} - {Message}{NewLine}{Exception}",